Function Composition এবং Partial Application

Computer Programming - ক্লোজার (Clojure) ফাংশনস (Functions in Clojure) |
243
243

ক্লোজারে ফাংশন কম্পোজিশন (Function Composition) এবং পার্শিয়াল অ্যাপ্লিকেশন (Partial Application)

ফাংশনাল প্রোগ্রামিং ভাষা হিসেবে ক্লোজারে (Clojure) ফাংশন কম্পোজিশন এবং পার্শিয়াল অ্যাপ্লিকেশন খুবই গুরুত্বপূর্ণ এবং শক্তিশালী কনসেপ্ট, যা ফাংশনাল প্রোগ্রামিংকে আরও কার্যকর এবং সংক্ষিপ্ত করে তোলে। ফাংশন কম্পোজিশন এবং পার্শিয়াল অ্যাপ্লিকেশন ডেভেলপারদের ফাংশন তৈরি এবং পুনরায় ব্যবহারযোগ্যতা বাড়াতে সাহায্য করে।


১. ফাংশন কম্পোজিশন (Function Composition)

ফাংশন কম্পোজিশন হলো দুটি বা ততোধিক ফাংশনকে একত্রিত করে একটি নতুন ফাংশন তৈরি করা। এতে একটি ফাংশনের আউটপুট অন্য একটি ফাংশনের ইনপুট হিসেবে ব্যবহৃত হয়। ক্লোজারে comp ফাংশন ব্যবহার করে ফাংশন কম্পোজিশন করা যায়।

উদাহরণ

ধরা যাক, আমরা দুটি ফাংশন square এবং increment তৈরি করতে চাই, যেখানে একটি সংখ্যার বর্গফল বের করা হয় এবং এরপর সেই ফলাফলে ১ যোগ করা হয়।

(defn square [x]
  (* x x))

(defn increment [x]
  (+ x 1))

; ফাংশন কম্পোজিশনের মাধ্যমে নতুন ফাংশন তৈরি করা
(def composed-fn (comp increment square))

(composed-fn 4) ; আউটপুট: 17

এখানে, composed-fn নামের নতুন ফাংশন তৈরি করা হয়েছে, যা প্রথমে square ফাংশন চালায় এবং তারপর increment ফাংশন চালায়। composed-fn4 পাস করলে প্রথমে বর্গফল 16 হয় এবং এরপর increment ফাংশনে ১ যোগ করে 17 আউটপুট দেয়।


২. পার্শিয়াল অ্যাপ্লিকেশন (Partial Application)

পার্শিয়াল অ্যাপ্লিকেশন হলো একটি ফাংশনের কিছু আর্গুমেন্ট ফিক্সড রেখে একটি নতুন ফাংশন তৈরি করা, যাতে পরবর্তীতে বাকি আর্গুমেন্ট দিয়ে ফাংশন চালানো যায়। ক্লোজারে partial ফাংশন ব্যবহার করে পার্শিয়াল অ্যাপ্লিকেশন করা যায়।

উদাহরণ

ধরা যাক, আমাদের একটি ফাংশন আছে multiply যা দুটি সংখ্যার গুণফল বের করে। আমরা এই ফাংশনের একটি আর্গুমেন্ট ফিক্সড রেখে নতুন একটি ফাংশন তৈরি করতে চাই।

(defn multiply [x y]
  (* x y))

; পার্শিয়াল অ্যাপ্লিকেশন দিয়ে নতুন ফাংশন তৈরি
(def double (partial multiply 2))

(double 5) ; আউটপুট: 10
(double 10) ; আউটপুট: 20

এখানে partial ফাংশন ব্যবহার করে multiply ফাংশনের প্রথম আর্গুমেন্ট 2 ফিক্সড রাখা হয়েছে, ফলে নতুন ফাংশন double তৈরি হয়েছে। এখন double ফাংশন শুধু একটি আর্গুমেন্ট নেবে এবং এটিকে 2 এর সাথে গুণ করবে।


কম্পোজিশন এবং পার্শিয়াল অ্যাপ্লিকেশন একসাথে ব্যবহার

ফাংশন কম্পোজিশন এবং পার্শিয়াল অ্যাপ্লিকেশন একসাথে ব্যবহার করে শক্তিশালী ফাংশন তৈরি করা যায়।

উদাহরণ

ধরা যাক, আমাদের দুটি ফাংশন আছে - একটির কাজ সংখ্যাকে ১০ দিয়ে গুণ করা এবং অন্যটি সংখ্যার উপর ৫ যোগ করা। আমরা একটি পার্শিয়াল অ্যাপ্লিকেশন ও ফাংশন কম্পোজিশন ব্যবহার করে নতুন ফাংশন তৈরি করতে পারি।

(defn add [x y]
  (+ x y))

(defn multiply [x y]
  (* x y))

; ১০ দিয়ে গুণ করার জন্য পার্শিয়াল অ্যাপ্লিকেশন
(def multiply-by-10 (partial multiply 10))

; ৫ যোগ করার জন্য পার্শিয়াল অ্যাপ্লিকেশন
(def add-5 (partial add 5))

; ফাংশন কম্পোজিশন ব্যবহার করে নতুন ফাংশন তৈরি
(def process-fn (comp add-5 multiply-by-10))

(process-fn 3) ; আউটপুট: 35

এখানে, process-fn ফাংশন প্রথমে multiply-by-10 চালায় এবং তারপর add-5 চালায়। ফলে (3 * 10) + 5 = 35 আউটপুট আসে।


সারসংক্ষেপ

কনসেপ্টবর্ণনাক্লোজারে ফাংশন
ফাংশন কম্পোজিশনদুটি বা ততোধিক ফাংশনকে একত্রিত করে একটি নতুন ফাংশন তৈরি করাcomp
পার্শিয়াল অ্যাপ্লিকেশনফাংশনের কিছু আর্গুমেন্ট ফিক্সড রেখে একটি নতুন ফাংশন তৈরি করাpartial

ক্লোজারে ফাংশন কম্পোজিশন এবং পার্শিয়াল অ্যাপ্লিকেশন কোডকে সংক্ষিপ্ত, পুনরায় ব্যবহারযোগ্য এবং কার্যকরী করে তোলে। এগুলোর মাধ্যমে ডেভেলপাররা কম্পোজেবল ফাংশন তৈরি করতে পারেন, যা প্রোগ্রামের মডুলারিটি বাড়ায় এবং কোড মেইনটেনেন্স সহজ করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion